const { Controller } = require("egg");

/**
 * @Controller 角色权限管理
 */
class RoleAclController extends Controller {
    /**
     * @jwt
     * @summary 添加角色权限
     * @description 添加一个角色权限关系
     * @router post /roles/acls
     * @request body CreateRoleAclRequest *body
     * @response 201 BaseResponse 创建成功
     */
    async create() {
        // 校验参数
        this.ctx.validate(this.ctx.rule.CreateRoleAclRequest);
        // 添加角色
        await this.service.roleAcl.add(this.ctx.request.body);
        // 返回成功响应
        this.ctx.helper.send(201);
    }

    /**
     * @jwt
     * @summary 角色权限列表
     * @description 返回符合条件的权限列表
     * @router get /roles/acls
     * @request query number type 查询请求
     * @response 200 BaseResponse 请求成功
     */
    async index() {
        // 校验参数
        this.ctx.validate(this.ctx.rule.QueryRoleAclRequest, this.ctx.query);
        // 查询数据库
        const res = await this.service.roleAcl.readListByQuery(
            this.ctx.query.type
        );
        // 返回响应
        this.ctx.helper.send(200, res);
    }
}

module.exports = RoleAclController;
